import { fileURLToPath, URL } from 'node:url'

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'

// 辅助插件 自动导入Element Plus组件
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'


// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  // 根据当前工作目录中的 `mode` 加载 .env 文件
  // 设置第三个参数为 '' 来加载所有环境变量，而不管是否有 `VITE_` 前缀。
  const env = loadEnv(mode, process.cwd(), '')
  return {
    // 环境变量通常可以从 process.env 获得。注意 Vite 默认是不加载 .env 文件的
    // 当你的确需要时，你可以使用 Vite 导出的 loadEnv 函数来加载指定的 .env 文件。
    define: {
      __APP_ENV__: JSON.stringify(env.APP_ENV),
      'process.env': env
    },

    target: 'web',

    plugins: [
      vue(),
      // 自动导入Element Plus组件
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      })
    ],

    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    },

    // 配置前端服务地址和端口
    server: {
      host: '0.0.0.0',
      port: 8026,
      // 是否开启 https
      https: false,
      // 设置反向代理，跨域
      proxy: {
        '/shop115': {
          // 后台地址
          target: 'https://api.gzzxue.com',
          changeOrigin: true,
          // rewrite: path => path.replace(/^\/api1/, '')
        },
        '/videos': {
          // 后台地址
          target: 'http://v.qian.gzzsu.com',
          changeOrigin: true,
          rewrite: path => path.replace(/^\/videos/, '/shop'),
        },
        '/imgs': {
          // 后台地址
          target: 'http://img.qian.gzzsu.com',
          changeOrigin: true,
          rewrite: path => path.replace(/^\/imgs/, '/shop')
        }
        ,
        '/video': {
          // 后台地址
          target: 'http://img.ele.gzzxue.com',
          changeOrigin: true,
          rewrite: path => path.replace(/^\/video/, '/assets')
        },
        '/img': {
          // 后台地址
          target: 'http://img.ele.gzzxue.com',
          changeOrigin: true,
          rewrite: path => path.replace(/^\/img/, '/assets')
        },
      },
      // proxy: {
      //   '/shop115': {
      //     // 后台地址
      //     target: 'https://api.gzzxue.com',
      //     changeOrigin: true,
      //     // rewrite: path => path.replace(/^\/api1/, '')
      //   },
      //   '/videos': {
      //     // 后台地址
      //     target: 'http://v.qian.gzzsu.com',
      //     changeOrigin: true,
      //     rewrite: path => path.replace(/^\/videos/, '/shop'),
      //   },
      //   '/imgs': {
      //     // 后台地址
      //     target: 'http://img.qian.gzzsu.com',
      //     changeOrigin: true,
      //     rewrite: path => path.replace(/^\/imgs/, '/shop')
      //   }
      //   ,
      //   '/video': {
      //     // 后台地址
      //     target: 'http://img.ele.gzzxue.com',
      //     changeOrigin: true,
      //     rewrite: path => path.replace(/^\/video/, '/assets')
      //   },
      //   '/img': {
      //     // 后台地址
      //     target: 'http://img.ele.gzzxue.com',
      //     changeOrigin: true,
      //     rewrite: path => path.replace(/^\/img/, '/assets')
      //   },
      // }
    },

  }
})